package com.zuxia.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zuxia.dto.OrderToDto;
import com.zuxia.dto.OrdersDto;
import com.zuxia.entity.Group;
import com.zuxia.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zuxia.entity.Orders;
import com.zuxia.entity.PageDto;
import com.zuxia.param.OrderNextParam;
import com.zuxia.param.OrderPageParam;
import com.zuxia.param.OrderParam;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author laoli
 * @since 2024-11-18
 */
public interface OrderService extends IService<Order> {
    //参与拼团--创建拼团人
    String partStarTakeOrder(OrderParam orderParam);
    //参与拼团--参与拼团人
    String partNextTakeOrder(OrderNextParam nextParam);
    //分页查询用户的订单详情
    PageDto<OrderToDto> getOrdersByUserIdPageList(OrderPageParam orderPageParam);
    //查询一个拼团设置中拼团成功的人数
    int getGroupByOrderStatusSuccessCount(String groupId);
    //修改订单状态
    boolean upOrdersStatusById(String id,Integer status);
    //修改拼团状态
    boolean upOrderStatusById(String id,Integer status);
    //提交订单
    boolean submit(Orders orders);
    //分页查询拼团
    PageDto<Order> getOrderPageList(OrderPageParam param);
    //查询该笔拼团下的人数
    int getCountMemberByOrderId(String orderId);
    //查询该笔拼团下的用户所拼商品数量
    int getOrdersShopNumById(String orderId);
    //根据编号获取拼团信息(简)
    Order getOrderById(String orderId);
    //根据编号获取拼团信息(详)
    OrdersDto getOrderOnOrdersById(String orderId,Integer status);
    //根据id查询用户订单
    Orders getOrdersById(String ordersId);
    //支付
    String payment(String ordersId);
    //根据订单详情id查询拼团表
    OrderToDto getOrderOnOrdersById(String ordersId);
    //发货修改状态
    boolean sendShop(String orderId);
    //获取根据订单id获取拼团id
    String selectOrderIdById(String ordersId);
}
